In the last few years, the popularity of small, mobile, hand-held remote computing devices, sometimes referred to as palmtop computers or personal digital assistants (PDAs), has grown considerably. Owing to their compact size, these remote devices are easily carried and transported by their users, allowing information to be entered and retrieved from a large number of settings and environments not normally accessible by traditional desktop computing units.
Early generation PDAs offered very limited functionality and were often restricted to serving as personal organizers or datebooks. Indeed, some early models grew out of scientific calculators, and were limited by tiny amounts of memory and equally small text-only LCD screens. Since then, PDAs have become much more powerful with some running versions of operating systems utilized previously only in much larger desktop computers.
While many of these handheld devices were intended to operate as stand alone units, other PDAs were incorporated into larger systems which allowed the free flow of data and information between the PDA and a host computing system or personal computer. In this manner, the PDA and host computing system were provided with the ability to synchronize or reconcile differences between databases implemented on the individual components. For example, applications such as calendar or address books were developed that allowed the implementation of corresponding databases on both the PDA and the host computing system. Each instance of the calendar or address book application was capable of taking new or modifying existing appointments or addresses. Then, the PDAs could be interfaced with the host computing system or personal computer to update changes or entries entered in one database onto the other.
As the versatility and computing power of these PDAs increased, more and more business applications were developed for their use. For instance, later generation PDAs were extremely popular for use as industrial data-gathering devices. As one example, after implementing a warehouse inventory application onto a PDA and host computing system, the PDA could be carried into the warehouse for the collection of inventory data. After finishing the data collection, the PDAs could be interfaced with the desktop units or main computing servers to upload the information into a central location.
However, while these systems were tremendously useful for gathering data from remote environments, the uploading of data typically required an action on the part of the application user. For instance, the user was typically required to physically place the PDA into a cradle attached to, e.g., the host computing system, and press a synchronization button before database reconciliation could commence. If a user failed to remember to commence reconciliation, valuable data could be received late or even lost. Thus, because commencement of the synchronization process was left to the application user, the uploading of data to a central database location often did not meet the time constraints imposed by the application designers.
Furthermore, conventional synchronization processes generally reconciled all of the databases implemented in the PDA and host computing system. For example, with each synchronization operation all of the updated information in a calendar database, an address book application, any newly generated memos, a “To-Do List”, as well as a warehouse inventory application were reconciled. Needless to say, this process was unduly burdensome and rather inefficient in situations where the only information desired consisted of the newly updated data gathered by the warehouse application.
Thus, it can be seen that conventional reconciliation processes are particularly inefficient in today's fast-paced business environment. Consequently, what is needed is a reconciliation technique that allows an application program to initiate the synchronization process. Similarly, what would also be useful is a reconciliation technique that allows the reconciliation of a selected group of databases implemented in the PDAs and host computing systems.